using System;
using System.Collections.Generic;
using System.Text;
using EntidadesTO;
using LogicaNegocio;
using System.Transactions;

namespace Controladoras
{
    public class ClasificacionTarifaMantenedor
    {
        private static ClasificacionTarifaMantenedor instancia;
        private List<ClasificacionTarifaTO> listaClasificacionTarifa;
        private ClasificacionTarifaBL clasificacionTarifaBL;

        public static ClasificacionTarifaMantenedor ObtenerInstancia()
        {
            if (instancia == null)
            {
                instancia = new ClasificacionTarifaMantenedor(); 
            }
            return instancia;
        }

        //Constructor de la clase
        private ClasificacionTarifaMantenedor()
        {
            listaClasificacionTarifa = new List<ClasificacionTarifaTO>();
            clasificacionTarifaBL = new ClasificacionTarifaBL();
        }
        
        public void CargarLista(int pCodClasificacion, DateTime pFechaConsulta, bool pCombo)
        {
            listaClasificacionTarifa = clasificacionTarifaBL.Listar(pCodClasificacion, pFechaConsulta, pCombo);
        }

        public void Actualizar(ClasificacionTarifaTO pClasificacion)
        {
            try
            {
                using (TransactionScope contexto = new TransactionScope())
                {
                    clasificacionTarifaBL.ActualizarTarifa(pClasificacion);
                    contexto.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //Devolver la lista de documentos legales
        public List<ClasificacionTarifaTO> ListaClasificacionTarifa
        {
            get
            {
                return this.listaClasificacionTarifa;
            }
        }
    }
}
